package com.ruoyi.tzai.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * TTS引擎配置对象 tzai_tts_engine_config
 * 
 * @author tzai
 * @date 2025-10-27
 */
public class TTSEngineConfig extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 引擎ID */
    private Long engineId;

    /** 引擎代码 */
    @Excel(name = "引擎代码")
    private String engineCode;

    /** 引擎名称 */
    @Excel(name = "引擎名称")
    private String engineName;

    /** 提供商 */
    @Excel(name = "提供商")
    private String provider;

    /** API地址 */
    @Excel(name = "API地址")
    private String apiEndpoint;

    /** 区域 */
    @Excel(name = "区域")
    private String region;

    /** 支持语言(逗号分隔) */
    @Excel(name = "支持语言")
    private String supportLanguages;

    /** 支持时间戳(0否 1是) */
    @Excel(name = "支持时间戳", readConverterExp = "0=否,1=是")
    private String supportTimestamp;

    /** 时间戳粒度(word/sentence) */
    @Excel(name = "时间戳粒度")
    private String timestampLevel;

    /** 音色配置(JSON) */
    private String voiceConfig;

    /** 音频参数(JSON) */
    private String audioParams;

    /** 状态(0启用 1禁用) */
    @Excel(name = "状态", readConverterExp = "0=启用,1=禁用")
    private String status;

    /** 是否默认(0否 1是) */
    @Excel(name = "是否默认", readConverterExp = "0=否,1=是")
    private String isDefault;

    /** 调用次数 */
    @Excel(name = "调用次数")
    private Long callCount;

    /** 成功次数 */
    @Excel(name = "成功次数")
    private Long successCount;

    /** 失败次数 */
    @Excel(name = "失败次数")
    private Long failCount;

    /** 最后调用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后调用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastCallTime;

    public Long getEngineId() {
        return engineId;
    }

    public void setEngineId(Long engineId) {
        this.engineId = engineId;
    }

    public String getEngineCode() {
        return engineCode;
    }

    public void setEngineCode(String engineCode) {
        this.engineCode = engineCode;
    }

    public String getEngineName() {
        return engineName;
    }

    public void setEngineName(String engineName) {
        this.engineName = engineName;
    }

    public String getProvider() {
        return provider;
    }

    public void setProvider(String provider) {
        this.provider = provider;
    }

    public String getApiEndpoint() {
        return apiEndpoint;
    }

    public void setApiEndpoint(String apiEndpoint) {
        this.apiEndpoint = apiEndpoint;
    }

    public String getRegion() {
        return region;
    }

    public void setRegion(String region) {
        this.region = region;
    }

    public String getSupportLanguages() {
        return supportLanguages;
    }

    public void setSupportLanguages(String supportLanguages) {
        this.supportLanguages = supportLanguages;
    }

    public String getSupportTimestamp() {
        return supportTimestamp;
    }

    public void setSupportTimestamp(String supportTimestamp) {
        this.supportTimestamp = supportTimestamp;
    }

    public String getTimestampLevel() {
        return timestampLevel;
    }

    public void setTimestampLevel(String timestampLevel) {
        this.timestampLevel = timestampLevel;
    }

    public String getVoiceConfig() {
        return voiceConfig;
    }

    public void setVoiceConfig(String voiceConfig) {
        this.voiceConfig = voiceConfig;
    }

    public String getAudioParams() {
        return audioParams;
    }

    public void setAudioParams(String audioParams) {
        this.audioParams = audioParams;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getIsDefault() {
        return isDefault;
    }

    public void setIsDefault(String isDefault) {
        this.isDefault = isDefault;
    }

    public Long getCallCount() {
        return callCount;
    }

    public void setCallCount(Long callCount) {
        this.callCount = callCount;
    }

    public Long getSuccessCount() {
        return successCount;
    }

    public void setSuccessCount(Long successCount) {
        this.successCount = successCount;
    }

    public Long getFailCount() {
        return failCount;
    }

    public void setFailCount(Long failCount) {
        this.failCount = failCount;
    }

    public Date getLastCallTime() {
        return lastCallTime;
    }

    public void setLastCallTime(Date lastCallTime) {
        this.lastCallTime = lastCallTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("engineId", getEngineId())
            .append("engineCode", getEngineCode())
            .append("engineName", getEngineName())
            .append("provider", getProvider())
            .append("apiEndpoint", getApiEndpoint())
            .append("region", getRegion())
            .append("supportLanguages", getSupportLanguages())
            .append("supportTimestamp", getSupportTimestamp())
            .append("timestampLevel", getTimestampLevel())
            .append("status", getStatus())
            .append("isDefault", getIsDefault())
            .append("callCount", getCallCount())
            .append("successCount", getSuccessCount())
            .append("failCount", getFailCount())
            .append("lastCallTime", getLastCallTime())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}

